Developing software to effectively use hardware, such as communication processors and system processors, of wireless devices is difficult. Wireless devices have limited memory storage capacity, making it desirable that software operating systems, interfaces and applications have a small footprint. However, using reduced footprint software design techniques limits the flexibility accorded to software designers.
To illustrate, one tool for producing software modeling language SDL code is TELELOGIC TAU. That tool allows for software programmers to produce a model of the software and the tool produces code from the model. TELELOGIC TAU has two potential code generators, C ADVANCED and C MICRO. C ADVANCED allows a software designer to use all the features of SDL. C MICRO limits the available features with the advantage of producing a smaller code footprint.
TELELOGIC TAU supports both light and tight integration. In light integration, the entire SDL system executes in a single thread. In tight integration, each SDL process becomes a thread. To minimize the code footprint, C MICRO is desirable to be used. However, C MICRO only supports light integration and, accordingly, multiple threads of execution are not supported. Accordingly, it is desirable to have code with a reduced footprint that supports multiple threads of execution.